import tools from "../tools.js"
import md5 from "../md5.js"// 引入配置
import c from '@/common/config'

const sign = (params, data, key) => {
	let obj = {
		...data,
		...params,
	}
	let str = tools.objectToQuery(obj)
	str = str.split(/[\t\r\f\n\s]*/g).join('')
	str += key;
	return md5(str)
}



/**
 * 请求拦截
 * @param {Object} http
 */
export const requestInterceptors = (vm) => {
    uni.$rui.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
        // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
        config.data = config.data || {}
		
		config.params = {...config.params, ...c.baseApi}
		config.params.timestamp = Date.now()
		config.params.sign = sign(config.params, config.data, c.baseKey)
		let token = uni.getStorageSync('UserToken');
		if(token) {
			config.params.token = token
		}
        return config
    }, (config) => // 可使用async await 做异步操作
        Promise.reject(config))
}
 